DSEQ32 (aka yet another TR clone)
is based on the classic TR drumsequencers\\

see [[trsequencer]] for more drumsequencer designs




{{http://webs.hogent.be/~032573mh/DSEQ32d.JPG?800}}

====== Features ======

  * 32 step 8 track drum seq, each step has trig/acc/roll
  * one track can be used as note track for bass sequencing
  * independant length/tempo divisor for each track, all can be synced to a master track
  * 8 banks of 16 patterns
  * patterns are saved on a bankstick
  * settings are stored on internal eeprom
  * song mode 
  * all functions can be executed while running
  * forward/backward playing direction
  * 24 PPQ resolution
  * midi clock master/slave (maybe also taptempo)
  * sysex functionality 

====== Interface ======

  * lcd: displaying (bpm pat trknr edited_par)
  * 32 step buttons + stepleds, leds are dual color to display trig/acc
    * step edit behaviour: step off/trig/trig+acc
    * all functions are accessed with a stepkey + shift combination
    * pattern selection: stepkey + pattern button
    * track select/mute: stepkey + track button

  * rotary encoder for bpm, also used for editing values

  * Step button layout:
    * Track layer
trk button + track select: solo track
track select + play button: manually trigger note

|1       |2       |3       |4       |5       |6       |7       |8       |9       |10      |11      |12      |13      |14      |15      |16      |     
| Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select |
| Trk1   | Trk2   | Trk3   | Trk4   | Trk5   | Trk6   | Trk7   | Trk8   | Trk9   | Trk10  | Trk11  | Trk12  | Trk13  | Trk14  | Trk15  | Trk16  |

|17      |18      |19      |20      |21      |22      |23      |24      |25      |26      |27      |28      |29      |30      |31      |32      |     
| Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   | Mute   |
| Trk1   | Trk2   | Trk3   | Trk4   | Trk5   | Trk6   | Trk7   | Trk8   | Trk9   | Trk10  | Trk11  | Trk12  | Trk13  | Trk14  | Trk15  | Trk16  |

    * Pattern layer

|1       |2       |3       |4       |5       |6       |7       |8       |9       |10      |11      |12      |13      |14      |15      |16      |     
| Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select |
| Bank A | Bank B | Bank C | Bank D | Bank E | Bank F | Bank G | Bank 8 |        |        |        |        |        |        |        |        |  

|17      |18      |19      |20      |21      |22      |23      |24      |25      |26      |27      |28      |29      |30      |31      |32      |     
| Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select |
| Pat 1  | Pat 2  | Pat 3  | Pat 4  | Pat 5  | Pat 6  | Pat 7  | Pat 8  | Pat 9  | Pat 10 | Pat 11 | Pat 12 | Pat 13 | Pat 14 | Pat 15 | Pat 16 |  


    * Function layer

|1       |2       |3       |4       |5       |6       |7       |8       |9       |10      |11      |12      |13      |14      |15      |16      |     
|Cut     |Copy    |Paste   |Delete  |NoteNr  |Length  |Divisor |Normal  |Accent  |Cut     |Copy    |Paste   |Delete  |Format  | Midi   | Fwd/Backwd|
|Track   |Track   |Track   |Track   |Track   |Track   |Track   |Velocity|Velocity|Pattern |Pattern |Pattern |Pattern |Bankstick| Mode  | Playdir       |

|17      |18      |19      |20      |21      |22      |23      |24      |25      |26      |27      |28      |29      |30      |31      |32      |     
| Fill   |Shift   | MidiCh | MidiCh |MidiCh  |Offset  |Notelen |Sync to |Sync Ld |        |Dump cur|        |Dump BS |        |LCD |Reset|
| Track  |Track   | Drum   | NoteSeq|CC      |CC      |NoteTrk |Track   |Pattern |        |Pattern |        |Pattern |        |Mode   |Seq  |


====== Progress ======
  * first prototype
  * new layout design
  * ledmatrix/buttonmatrix finished (see matrix page)
  * frontpanel finished/wired
  * first take on controll surface handler (step, track and pattern handling)
  * sequencer works, timing is not stable yet
  * made a temporary case
  * fixed flickering leds when pushing a button
  * bankstick error handling added
  * default pattern is loaded when no BS is available at startup
  * independant length/divider for each track implemented
  * LCD optimalisations
  * loading and saving of patterns works now
  * backward playing direction implemented
  * midi mode implemented with simple slave mode (no interpolation)
  * improved bpm handling (pattern bpm is saved with pattern)
  * fill function implemented
  * CS interface improved (the edit functions are now accessed with stepbutton+shift)
  * settings are saved in internal eeprom
  * notetrack implemented, this track will be used to program basslines
  * changed data structure, new pattern is 256bytes
  * cs is updated for notetrack (shift + track selects notetrack)
  * shift + stop resets the song position
  * due to code/ram space limitations the project is ported to a pic18f4620
  * the core board was modified so that the backlight can be controlled by the software
  * new bankstick routines to handle the larger pattern size
  * 2 new functions added: Seq Reset and Backlight mode
  * CC layer added
  * tracks don't go out of sync after changing divisor
  * the note track now has a note length parameter
  * pattern banks are implemented
  * new function: shift track
  * the note-on status of tracks is displayed in the track layer
  * note-off handling when seq is stopped added
  * the pattern bpm is now loaded when the seq is not running
  * 0.7e
    * pattern banks implemented, bug fixed in bankstick routines
    * manual trigger and solo implemented
    * basic sysex support
    * songmode now works
    * note length implementation for note track
    * it is now possible to sync pattern changes to begin of pattern
    * lots of core tick optimalisations
    * obsolete functions removed



====== Software ======

Most of the code is written in C

the software will be based on the midibox  [[http://www.midibox.org/forum/index.php?topic=5691.0|clockbox example]] <sup>uCApps</sup>

  * [[DSEQ_DATA|Data structure]]

  * Application code 
    * [[DSEQ_BS|Bankstick]] (updated)
    * [[DSEQ_CS|Control surface]]
    * [[DSEQ_CORE|Sequencer core]]
    * [[DSEQ_FUNCTIONS|Sequencer get/set and helper rountines]]

  * you can find DSEQ32 v0.7e [[http://webs.hogent.be/~032573mh/midibox/dseq32/dseq32_latest.zip|here]]

  * the [[www.doxygen.org|doxygen]] generated documentation is available [[http://webs.hogent.be/~032573mh/midibox/dseq32/doc|here]]


====== Hardware ======

Components:
  * CORE module [[http://www.ucapps.de/mbhp_core.html|CORE Module]] <sup>uCApps</sup>
  * DOUTX3 [[http://www.ucapps.de/mbhp_dout.html|DOUT Module]] <sup>uCApps</sup>
  * DINX1 [[http://www.ucapps.de/mbhp_din.html|DIN Module]] <sup>uCApps</sup>
  * BANKSTICK [[http://www.ucapps.de/mbhp_bankstick.html|BANKSTICK Module]] <sup>uCApps</sup>


The leds/buttons are wired in a matrix configuration
to reduce the number of DIN/DOUT modules needed
[[DSEQ32_matrix]]

note: this description is out of date!!

====== Construction ======


  * Assembly of frontpanel

{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/button_boards.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/back_nobutton.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/boardsinplace.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring1.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring2.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring3.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring4.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring5.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring6.JPG?400}}


  * Painting the case

{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/case_after_cleaning.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/front_after_cleaning.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/back_grondverf2.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/front_grondverf.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/case_together_grondverf.JPG?400}}


  * Assembly after painting

{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/inside_case.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/boards.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/front_back.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/front_with_nuts.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/boardsinplace_back.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/inside_case_w_board.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/assembled.JPG?400}}


  * Finished hardware

{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction//finished_hw/dseq32.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction//finished_hw/dseq32_w_nord.JPG?400}}

====== Development ======

First prototype:\\

[[http://www.midibox.org/forum/index.php?topic=6980.msg45082#msg45082|forum topic]]

{{http://users.skynet.be/sky92755/testsetup.JPG?400}}

used for development of data structure, bankstick code, sequencer core

New version:

  * Construction of frontpanel
  * Wiring of the 32 step leds/buttons
  * Testing of the step buttons with the SM_example application
  * Testing of the step leds with modified SM_example app (modified version includes leddriver)
  * Development of user interface code
   * Button and led handling finished
   * The flickering led problem is solved with MIOS v 1.9c
   * Encoder handling works, but there's still a small bug
   * Updated LCD layout for new functions
   * The leds to indicate play/save/vel/special function button work now
   * Some LCD optimalisations

  * Development of seq code 
   * Sequencer edit functions work as expected
   * Sequencer runs!
   * Fixed sequencer mute track bug
   * Some tracks didn't send the note off messages correctly, corrected
   * Bankstick error handling added
   * Default pattern is loaded when no BS is available at startup
   * Note length/divider is implemented
   * Independant length/divider for each track
   
\\

back to [[user_projects]]

more project by [[mess]]